﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpReview
{
    class Animal
    {
        public string animalType { get; set; }

        public void Eat()
        {
            Console.WriteLine($"{this.animalType} eat.");
        }
    }

    class Bird : Animal, IFlyable
    {
        public Bird(string type = "bird")
        {
            base.animalType = type;
        }

        public void Fly()
        {
            Console.WriteLine($"{this.animalType} Fly.");
        }

        public void Land()
        {
            Console.WriteLine($"{this.animalType} Land.");
        }

        public void TakeOff()
        {
            Console.WriteLine($"{this.animalType} TakeOff.");
        }

        public void LayEggs()
        {
            Console.WriteLine($"{this.animalType} lay eggs.");
        }
    }

    class Superman : Animal, IFlyable
    {
        public Superman(string type = "superman")
        {
            base.animalType = type;
        }
        public void Fly()
        {
            Console.WriteLine($"{this.animalType} Fly.");
        }

        public void Land()
        {
            Console.WriteLine($"{this.animalType} Land.");
        }

        public void TakeOff()
        {
            Console.WriteLine($"{this.animalType} TakeOff.");
        }
    }
}
